/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package primaprova;

/**
 *
 * @author Windows Seven
 */
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.net.MalformedURLException;

/**
 * Il compito dell’applicazione client è ricercare l’applicazione server che
 * espone gli oggetti remotizzati messi a disposizione attraverso RMI ed
 * invocarne, quindi, i metodi opportuni (nel nostro caso l’unico metodo è
 * calculateSquareRoot().
 *
 * Nel caso del client è importante notare l’istruzione in rosso che si occupa
 * proprio di effettuare il lookup (la ricerca) dell’oggetto remotizzato
 * denominato RMISquareRoot sulla macchina il cui indirizzo è localhost (come si
 * sarà intuito, per semplicità, stiamo eseguendo le applicazioni server e
 * client sul medesimo PC).
 *
 */


public class RMISquareRootClient {

    public static void main(String[] args) {
        int x = Integer.parseInt(args[0]);

        try {
            ISquareRoot squareServer =
                    (ISquareRoot) Naming.lookup("rmi://localhost/RMISquareRoot");

            double result = squareServer.calculateSquareRoot(x);
            System.out.println(result);
        } catch (NotBoundException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}